package unit04.day04;
/**
 * 第一种创建线程的方式
 * 继承Thread并重写run方法来定义线程要执行的任务
 * @author Administrator
 *
 */

public class ThreadDemo1 {

	public static void main(String[] args) {
		 Thread thread1 = new MyThread1();
		 Thread thread2 = new MyThread2();
		 /**
		  * 启动线程要指定start方法，而不是直接调用run方法。run方法是线程要执行的任务。
		  * 当线程的start被调用后，线程进入runnable状态，一旦获取cpu时间，run方法会自动被调用
		  * */
		 thread1.start();
		 thread2.start();
	}

}
/**
 * 第一种创建线程方式两个不足：
 * 1.由于java是单继承，那么当集成了Thread后就无法再继承其他类
 * 2.由于继承Thread后重写run方法规定了线程执行的任务，这导致线程与任务有一个必然的耦合关系，不利于线程的重用
 *
 */
class MyThread1 extends Thread{
	public void run() {
		for(int i=0;i < 1000;i++) {
			System.out.println("你是谁");
		}
	}
}

class MyThread2 extends Thread{
	public void run() {
		for(int i=0;i < 1000;i++) {
			System.out.println("我是你");
		}
	}
}